In the computer industry, emphasis is currently being placed on emulation technology and interpreted computer language execution to allow software to be executed on many different hardware platforms. The advantage of using emulation and interpreted language execution is that once software is written for execution on a single hardware platform, the same software can be ported to other hardware platforms without much additional effort. However, emulation and interpreted language execution require an extra layer of software between the user's executable software code and the physical hardware in order to achieve hardware independence of the user's software code. This additional layer of software is emulation overhead that is not typically found in other computer systems where user software is compiled directly for a specific hardware platform and executed directly on that hardware platform. Although the extra layer of software in emulation result in greater compatability independent of hardware nuances, slower user software execution may result.
A goal in the computer industry is to reduce the performance impact of this additional layer of software thereby increasing the speed of execution of various emulators or interpreted language machines (e.g., Java, Smalltalk, and BASIC). In order to reduce emulation overhead, the industry is attempting to produce customized hardware and simplify the intermediate layer of software whereby performance is improved. Therefore, the need exists for a new emulation fetch and decode routine which has reduced overhead whereby emulation/interpretation performance is improved.